package cn.niit.letuseatdemo.service;


import cn.niit.letuseatdemo.entity.domain.Goods;
import cn.niit.letuseatdemo.entity.domain.User;
import cn.niit.letuseatdemo.entity.domain.UserAddress;

import java.util.List;


/**
 * 用户Service接口
 * 
 * @author aoli_jojo
 * @date 2022-10-26
 */

public interface UserService
{

    /*
    * @Description:根据用户的电话和密码查询，用于用户登录
    * @Author: Zhang Shiqi
    * @CreateTime： 2022/10/31 0:36
     * @param: userName
     * @param: userPass
     * @return: cn.niit.letuseatdemo.entity.domain.User
    **/
    User getUserByUserTelPassword(String userTel, String userPass);

    /**
     * 查询用户
     * 
     * @param userId 用户主键
     * @return 用户
     */
    public User selectUserByUserId(Long userId);

    /**
     * 查询用户列表
     * 
     * @param user 用户
     * @return 用户集合
     */
    public List<User> selectUserList(User user);

    /**
     * 新增用户
     * 
     * @param user 用户
     * @return 结果
     */
    public int insertUser(User user);

    /**
     * 修改用户
     * 
     * @param user 用户
     * @return 结果
//     */
//    public int updateUser(User user);

    /**
     * 批量删除用户
     * 
     * @param userIds 需要删除的用户主键集合
     * @return 结果
     */
    public int deleteUserByUserIds(String userIds);

    /**
     * 删除用户信息
     * 
     * @param userId 用户主键
     * @return 结果
     */
    public int deleteUserByUserId(Long userId);
//    /*
//    * @Description: 获取用户个人资料${TODO}
//    * @Author: Jin_Na
//    * @CreateTime: 2022/11/6 16:32
//     * @param: null
//     * @return: null
//    **/
//    User getUser(Long userId);

    /*
    * @Description: 修改用户资料${TODO}
    * @Author: Jin_Na
    * @CreateTime: 2022/11/6 16:33
     * @param: null
     * @return: null
    **/
    public int updateUser(User user);

    /*
     * @Description: 注册用户
     * @Author: Zhang Shiqi
     * @CreateTime： 2022/11/10 11:08
     * @param: user
     * @return: boolean
     **/
    public boolean register(User user);

    /*
     * @Description: 用户登录的方法
     * @Author: Zhang Shiqi
     * @CreateTime： 2022/11/11 16:30
     * @param: user
     * @return: boolean
     **/
    //public boolean login(User user);
    User login(User user);

    /*
    * @Description: 获取个人信息
    * @Author: Zhang Shiqi
    * @CreateTime： 2022/12/1 10:16
     * @param: user
     * @return: cn.niit.letuseatdemo.entity.domain.User
    **/
    User getUserInfo(User user);

}
